package com.wuad.platformwuad.module.study.collection;

import com.wuad.platformwuad.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

/**
 * 对list进行分组处理
 *
 * @author wuaodi
 * 2024/9/2
 */
@Slf4j
public class ListGrouped {

    public static void main(String[] args) {
        List<String> stringList = new ArrayList<>();
        stringList.add("1");
        stringList.add("2");
        stringList.add("3");
        stringList.add("4");
        stringList.add("5");
        stringList.add("6");
        stringList.add("7");
        stringList.add("8");
        stringList.add("9");
        stringList.add("10");
        // 对集合数据按需求分组成指定数据量的子集合
        List<List<String>> lists = CollectionUtils.fixedGrouping(stringList, 3);
        for (List<String> list : lists) {
            log.info("对集合数据按需求分组成指定数据量的子集合：{}", list);
        }
        /**
         * 对集合数据按需求分组成指定数据量的子集合：[1, 2, 3]
         * 对集合数据按需求分组成指定数据量的子集合：[4, 5, 6]
         * 对集合数据按需求分组成指定数据量的子集合：[7, 8, 9]
         * 对集合数据按需求分组成指定数据量的子集合：[10]
         */
        log.info("------------------------------------------------------------");
        List<List<String>> lists2 = CollectionUtils.fixedGrouping2(stringList, 3);
        for (List<String> list : lists2) {
            log.info("对集合数据按需求分组成指定数据量的子集合：{}", list);
        }
        /**
         * 对集合数据按需求分组成指定数据量的子集合：[1, 2, 3]
         * 对集合数据按需求分组成指定数据量的子集合：[4, 5, 6]
         * 对集合数据按需求分组成指定数据量的子集合：[7, 8, 9]
         * 对集合数据按需求分组成指定数据量的子集合：[10]
         */
        log.info("------------------------------------------------------------");
        List<List<String>> lists3 = CollectionUtils.averageAssign(stringList, 3);
        for (List<String> list : lists3) {
            log.info("对集合数据按需求分组成指定数据量的子集合：{}", list);
        }
        /**
         * 对集合数据按需求分组成指定数据量的子集合：[1, 2, 3, 4]
         * 对集合数据按需求分组成指定数据量的子集合：[5, 6, 7]
         * 对集合数据按需求分组成指定数据量的子集合：[8, 9, 10]
         */
    }
}
